"""

赋值的运算符: =
 = 是一个最基本的赋值运算符，他的作用是将等号的右边计算结果或者值存储到等号的左边

 #基本赋值
a = 10  #将数字10赋值给了变量a
print(a)

name = "Allen"    #将字符串"Allen"赋值给变量 name
print(name)

#连续赋值：可以用一个 = 将同一个值赋给多个变量

a = b = c = d = "hello"

print(a)
print(b)
print(c)
print(d)
"""

"""

#拆包：python允许你将一个包含多个值的序列（元组，列表）一次性的拆开，并赋值给多个变量


#拆包一个元组

m,n = 3,5    # m = 3    n = 5
print(m)
print(n)

#拆包一个元组，并返回其中的元素
x = ("Hello","good","yes")
print(x)   # ('Hello', 'good', 'yes')

#注意点
y,z = 1,2,3,4,5,6   #ValueError: too many values to unpack (expected 2)

print(y)
print(z)
"""


"""
# #可变长度拆包（*）
# # 使用（*）可以将剩余的值收集到一个列表中，解决变量和值的个数不匹配的问题
# #将第一个值给到了o,最后一个给到了q,其余的所有的值给到了p(p是一个列表)
# o,*p,q = 1,2,3,4,5,6
# print(o)  #1
# print(p)    # [2, 3, 4, 5]
# print(q)   # 6
"""


"""

# 算数的运算符
# 用于执行最基本的数字运算，
# **（幂）> *(乘) /（除法） //（整除） %（取余） > +(加法) -（减法）使用括号可以改变优先级

# /（除法）
#  10 / 2  = 5.0  (结果总是浮点数)


#
# result1 = 1+2 *3 // 2
# print(result1)    # 4


# result2 = (1+2)*3 // 2
# print(result2)

# result3 = (10-4) ** 2 / 3 + 1
# print(result3)   # 13.0

#
# str1 = "Hello"
# str2 = "WC"
# result =  str1 + str2
# print(result)


# greeing = "Hi"
#
# repeated = greeing * 3
# print(repeated)




# result = 5 + 3.2   #在这个过程中，这个5 在底层被转换为5.0
# print(result)   # 5.0+3.2
"""




"""

控制语句：if
选择结构根据条件的真假来决定执行那部分的代码，类似于做选择题
"""

#语法
# if 条件的表达式:
#     语句块   #如果条件为真的情况，执行这部分的代码


#操作：输入一个数字，如果输入的数字小于10，则打印这个数字



# num = input("请输入一个数字：")  #输入的是一个字符串的形式
#
# num = int(num)
#

#单分支
# if num <10:   #这个地方定义了只有num小于10的时候，则打印该数字
#     print(num)



# 双分支
#语法
# if 条件的表达式：
#     语块1     #当条件为True的时候，执行这个
# else：
#      语块2    #当条件为False的时候，执行这个


#操作：输入一个数字，如果输入的数字小于10，则打印这个数字，否则打印数字太大了

# num = int(input("请输入一个数字："))
#
# if num < 10:
#     print(num)
# else:
#     print("太大了")



#多分支

#语法
# if 条件的表达式：
#     语块1
# elif  条件2：
#        语块2
# elif   条件3：
#        语块3
#         ...
# else：
#      语块N  #  当所有的条件都不满足，运行到这里



#输入一个学生的成绩，转换成等级，60不及格，80 及格   90 良好 100 优秀


# score = int(input("请输入分数："))
#
# if score < 0 or score < 60:
#     grade = "不及格"
# elif score < 80:
#     grade = "及格"
# elif score < 90:
#     grade = "良好"
# elif score < 100:
#     grade = "优秀"
# else:
#     grade = "分数错误，请重新输入"
#
# print(f"分数是{score}，等级是{grade}")




# age = int(input("请输入你的年纪："))
#
# if age < 0 :
#     stage = "年龄错误，请重新输入"
# elif age <= 5 :
#     stage = "婴幼儿"
# elif age <=11:
#     stage = "儿童"
# elif age <=17:
#     stage = "青少年"
# elif age <=59:
#     stage = "成年人"
# else:
#     stage = "老年人"
#
# print(f"年龄是{age}，属于{stage}")


#在python中有一些值是False

# False：数字0 或者0.0
# 空值：None
# 空的序列：空的列表、空的元组、空的字符串
# 空的range()
# if 3:
#     print("ok")

#
# a= []
# if a:
#     print("非空列表")
# else:
#     print("空的")


"""
重点：
在条件表达式中，不能有复制的操作符
=  是赋值
1==1
"""


"""


#选择结构的嵌套
# 解释：在一个if语句中嵌套一个if语句


#操作：输入一个分数，判断等级，但是先检查一下分数是否是有效的
score = int(input("请输入一个分数"))

if score > 100 or score < 0 :
    print("请输入一个0-100的分数")
else:
    if score >= 90:
        print("A")
    elif score >= 80:
        print("B")
    elif score >= 70:
        print("C")
    elif score >= 60:
        print("D")
    else:
        print("E")
"""


"""
pass是一个占位符，当不想写具体内容，使用pass避免语法错误，代码会直接跳过这部分
"""



"""

while循环：只要条件为真，就重复的执行循环体

while  条件表达式：
      循环体语句
      
      while True:
    print("这是一个死循环")
    
    #+= 是一个复合型的运算符，
# 作用：将右边的值，加到左边的变量上，并且结果重新赋值给左边的变量


# 循环打印 0 -10的数字

# num = 0
#
# while num <= 10:
#     print(num)
#     num +=1


#计算：1-100所有的数字累加

#初始的累加和

# sum_all = 0
# 
# # 初始化一个计数器 从1 开始
# num = 1    #如果没有这个，那么python会不知道现在加到哪里了
# 
# while   num <= 100:
#     #将当前的num的值加到sum_all 中（累加）
#     sum_all += num
#     num += 1
#     print(f"1-100的累加总和是{sum_all}")

"""


#for循环

# for循环用于遍历一个可迭代的对象（列表，字典，字符串，range）等，每一个元素
"""
for 变量 in 可迭代的对象
     循环体语句
"""



# num = [1,2,3,4,5]
#
# for num_1 in num:
#     print(num_1)


# numbers = [1,2,3,4,5]   #创建一个列表
# total = 0    #创建一个变量，初始化为0
#
# for i in numbers:   #在numbers中循环取值
#
#     total += i    #将循环取值赋予到 total 上
# print(total)



# range()主要是用来生成一个数字的序列，常用于for循环
# range(start,end, step)


# start：起始值，默认是0
# end:结束值（不包含的）（1，101）
# step:步长，默认是1，可以为负数（倒叙）
#  不会立即生成所有的数字，二十按需要生成，非常适合处理大范围的数据

# for i in range(10,0,-2):
#     print(i)


# break   跳出循环

# for i in range(3):
#     print(i)
# else:
#     print("结束循环")



# num = 1
# while num<=10:
#     if num == 5:
#         break
#     print(num)
#     num +=1
# print("循环结束")